package org.fastfaild.linked_list;

/**
 * className: List
 * Description:
 * date: 2022/11/30 10:35
 *
 * @author fanpeng
 * @version 1.0
 */
public interface List<E> {

    /**
     * 添加元素
     * @param e 元素
     * @return boolean
     */
    boolean add(E e);

    /**
     * 添加首节点
     * @param e 元素
     * @return boolean
     */
    boolean addFirst(E e);

    /**
     * 添加尾节点
     * @param e 元素
     * @return boolean
     */
    boolean addLast(E e);

    /**
     * 删除元素
     * @param o 元素
     * @return boolean
     */
    boolean remove(Object o);

    /**
     * 根据索引获取元素
     * @param index 索引
     * @return 元素
     */
    E get(int index);

    /**
     * 打印链表集合
     */
    void printLinkList();
}
